"""
日志管理器
"""

import logging
import os
import time

from config import BASE_PATH


class ToolLogger():
    def __init__(self):
        # 记录器
        self.logger = logging.getLogger()
        # 设置日志级别
        self.logger.setLevel(logging.DEBUG)

        # 控制台处理器
        self.ch = logging.StreamHandler()
        self.ch.setLevel(logging.INFO)

        # 文件输出处理器
        file_path = BASE_PATH + os.sep + "log" + os.sep + f"{time.strftime('%Y-%m-%d')}.log"
        self.fh = logging.FileHandler(filename=file_path, encoding='utf-8')
        self.fh.setLevel(logging.INFO)

        # 日志输出格式
        self.formatter = logging.Formatter("%(asctime)s|%(levelname)s|%(filename)s|%(lineno)s|%(message)s")

        self.ch.setFormatter(self.formatter)
        self.fh.setFormatter(self.formatter)

        self.logger.addHandler(self.ch)
        self.logger.addHandler(self.fh)


# 实例化一个logger对象，以供调用
logger = ToolLogger().logger
